package com.zian.utils;

import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;

/**
 * ID生成器工具类
 *
 * @author ruoyi
 */
public class IdUtils {
    /**
     * 获取随机UUID
     *
     * @return 随机UUID
     */
    public static String randomUUID() {
        return UUID.randomUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String simpleUUID() {
        return UUID.randomUUID().toString(true);
    }

    /**
     * 获取随机UUID，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 随机UUID
     */
    public static String fastUUID() {
        return UUID.fastUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String fastSimpleUUID() {
        return UUID.fastUUID().toString(true);
    }

    /**
     * 生成订单号
     * @return
     */
    public static String generateOrderNo() {
        int num1 = RandomUtil.randomInt(1, 10000);
        int num2 = RandomUtil.randomInt(1, 10000);
        String num1Str = StrUtil.fillBefore(num1 + "", '0', 4);
        String num2Str = StrUtil.fillBefore(num2 + "", '0', 4);
        long currented = System.currentTimeMillis();
        return StrUtil.format("{}{}{}", num1Str, currented, num2Str);
    }

}
